Many corporate computer users regularly rely on the applications and files stored on the hard drive of their personal office computers for their computing needs. However, most of these computers lack portability, or if portable, can not provide suitable access to resources available to their personal office computers.
In order to provide computer users access to the resources of their personal office computers from remote devices, such as their home computers or laptops, programmers have developed several technologies for remotely accessing the resources of a computer, called a host, from a second, remote device, called a client. Using such technologies, a remote user's client display displays what might be seen on the display of the host computer were the user physically viewing the host display. In addition, remote access software allows remote users to interact with the host computer with the client's input devices, such as a keyboard or mouse, as if the user was using the host's input device. Any computation initiated by the user's input is carried out by the host computer and the results are displayed on the client display as if it were the host display.
While these technologies have been successful and useful on a limited scale, they can present administrative burdens in large scale, enterprise systems. Large enterprise systems require secure regulated access for large numbers of users to large numbers of networked resources. Some systems allow specification of broad access rules that apply to groups of users or resources, but do not typically place access limitations on any individual or individual resource. Some systems have individual permission-based methods that typically require a system administrator to specify access limitations for each and every user and resource. The former methods often provide insufficient security since the access rules tend to be overly broad, and the latter method commonly requires an unusually high level of administrative overhead in large systems.